1. Field of the Invention
The present invention relates to a method of relaying a file object, a distributed file system, a computer readable medium recording a program of a method of relaying a file object, and to a gateway computer. More specifically, the present invention relates to a method of relaying a file object, a distributed file system, a computer readable recording medium, recording a program of a method of relaying a file object and a gateway computer, allowing reference of one same file object among networks.
2. Description of the Background Art
In a conventional distributed file system, a server computer stores replicas of file objects in a storage, that is, a cache. In response to an access request from a client computer, the server computer relays a replica of a file object stored in the cache to the client computer. By such a series of operations, the speed of accessing is improved. Such method has been know from Japanese Patent Laid-Open No. 4-313126 entitled xe2x80x9cFile Input/Output System for Decentralized File Systemxe2x80x9d, and Japanese Patent Laid-Open No. 63-200244 entitled xe2x80x9cFile Access Systemxe2x80x9d, Japanese Patent Laid-Open No. 63-201845 entitled xe2x80x9cRemote File Access Systemxe2x80x9d, for example. A computer used for such a method and performing the above described operation is generally referred to a as a gateway computer.
A typical example of the distributed file system is the internet which is a global network utilizing TCP/IP (Transmission Control Protocol/Internet Protocol). A distributed file system consisting of file objects in the form of hypertext formed utilizing Hypertext Transfer Protocol (HTTP) on the internet is referred to as a World Wide Web (WWW) system. In the WWW system, when a file object is transferred utilizing HTTP, relaying of a file object by the gateway computer, storing of a replica of the file object and relaying of the replica of the file object are widely performed. The gateway computer relaying the file object in the WWW system on the internet is generally referred to as Proxy server. Generally, the Proxy server is implemented by running a Proxy software on a computer connected to the network.
The file objects include not only simple text but also image, voice, video image and various other data, which are attractive both to providers and users of the information. This results in explosive flow of WWW system traffic on the network.
Further, a user uses a browser software having a graphical user interface installed in a client computer. This allows the user to successively access pieces of information consisting of file objects held by server computers distributed on the network. Because of this simplicity, today, the WWW system is enormously popular.
A file object is specified by a URL (Uniform Resource Locator). If the URL is xe2x80x9chttp://www. sharp co. jp/image/index.htmlxe2x80x9d, the name of the server computer is xe2x80x9cwww.sharp.co.jpxe2x80x9d, and a file xe2x80x9cimage/index.htmlxe2x80x9d in a directory for the Web server in the server computer is designated.
Referring to FIG. 36, the conventional distributed file system includes a server computer 120, a representative gateway computer 116, a client computer 102, a global network 132, and a local network 112. To global network 132, server computer 120 and representative gateway computer 116 are connected. To the local network 112, representative gateway computer 116 and client computer 102 are connected.
A browser 104 is in operation on client computer 102. In accordance with an instruction from a user 100, browser 104 transmits a request for a file object to representative gateway computer 116, receives the file object and presents the file object to user 100.
A Proxy 370 is in operation in representative gateway computer 116. In response to a request for getting a file object transmitted from client computer 104, Proxy 370 reads the file object from the server computer 120 or a cache 374 which will be described later, and transmits the read object to client computer 104. Representative gateway computer 116 includes a cache 374 for storing a file object read from server computer 120, and an access log 372 for storing record of reading (for example, date of reading) of a file object received from server computer 120.
Server computer 120 includes a storage 376 for storing file objects.
Referring to FIG. 37, representative gateway computer 116 is a computer having a network interface, including a CPU (Central Processing Unit) 380, a memory 382, an I/O (Input/Output) unit 388, a file device 390 and a network I/O unit 384. These components of representative gateway computer 116 are coupled by an internal bus 386. File device 390 is classified into a cache file 374, a log file 372 and a unit storing other variables and so on.
Again referring to FIG. 36, a series of operations for getting a file object in the conventional distributed file system will be described.
A client computer 102a transmits a request for a file object to representative gate computer 116 for an access to a file object on an external network.
Proxy 370 which is a process (thread) operating in representative gate computer 116 receives the request.
Proxy 370 accesses cache 374, and determines whether the corresponding file object exists in the cache 374. When the file object is stored in cache 374, Proxy 370 compares valid date thereof with time of change (modification) of the file object stored in cache 374. If the valid date of the file object is not expired, Proxy 370 reads the file object from cache 374, and transmits the file object to client computer 102a. 
If there is not a valid file object in cache 374, that is, when the desired file object is absent or when the object is present but the valid date has already been expired, then Proxy 374 transmits a request for the file object to server computer 120 connected to global network 132.
Upon reception of the request, server computer 120 reads the file object from storage 376 and transmits the file object to Proxy 370. Proxy 370 which has received the file object transfers the file object to client computer 102a. Further, it writes the file object to cache 374. At this time, HTTP header information of transfer, date of writing the file object and time and date of accessing are stored in log file 372.
When another client computer 102b transmits a request for getting the same file object to representative gateway computer 116, Proxy 370 reads the file object from cache 374 and transmits it to client computer 102b. In this manner, as client computers 102a and 102b share cache 374, it is possible for client computers 102a and 102b to take out a file object which is frequently requested, at a high speed.
It is possible to operate browser 104 and Proxy 370 simultaneously as separate processes, on a client computer 102. One example of such a client computer 102 is disclosed in Japanese Patent Laid-Open No. 7-93205. Browser 104 on the client computer 102 transmits a request for a file object to Proxy 370 operating on client computer 102 itself In this case, the IP address for specifying a computer on which Proxy 370 is in operation is set to IP address 127.0.0.1 which designates the client computer itself. This enables simultaneous running of browser 104 and Proxy 370 on client computer 102 without any special change or modification to browser 104.
The above described client computer 102 is generally implemented by a desktop computer. A desktop computer has state of the art high speed CPU, large storage memory, a well fitting keyboard with wide key pitch, a large display monitor and a hard disk of large capacity, as well as full specification satisfied only by the stationary computer.
The WWW system on the internet allows the above described method of accessing in which user 100 explicitly requests a specific file object stored in server computer 120 so that the file object is transferred to client computer 102. Further, the system allows the following access method. Namely, hypertext information contained in the file object is analyzed, and hyperlinked another file object is automatically stored in the storage of the client computer 102. A software performing such an accessing operation is generally referred to as an Auto Pilot tool, which operates on client computer 102. The Auto Pilot tool performs automatic accessing in a time band different from the time band when user 100 actually makes an access to the file object of server computer 120 (generally, in a time band when network traffic lightens by utilizing timer reservation, for example).
Different from the above described methods of accessing, there is also a method of accessing in which while user 100 is actually accessing a file object of server computer 120, hypertext information contained in the relayed file object is analyzed, and hyperlinked another object is stored in a storage of representative gateway computer 116 or client computer 102. Further, similar technique are known from Japanese Laid-Open Patent No, 9-231119 entitled xe2x80x9cInformation Communication Systemxe2x80x9d. Such a method in which hypertext information contained in the file object is analyzed to make access to the hyperlinked another file object prior to the user access is generally referred to as prefetch.
The file object utilized in the WWW system or the like on the internet is described in the form of hypertext. The hypertext refers to text with address information allowing access to a plurality of different file objects described therein. The address information allowing access to other file objects is referred to as hyperlink. The user repeats an operation of selecting one of the hyperlinks contained in the file object and getting a further file object. Prefetching is a technique such as described in the following. When client computer 104 first reads a file object in the form of hypertext, representative gateway computer 116 relaying the object or client computer 102 utilizing the object extracts hyperlinks contained in the file object. Representative gateway computer 116 or client computer 102 predicts a file object to be selected by user 100, and the predicted object is stored in advance in the storage of gateway computer 116 or client computer 102.
The prefetch technique for the file object in the hypertext form can readily be understood by an analogy of branch prediction technique, which is a technique for processing instructions in a microprocessor. Instructions executed by a microprocessor includes a plurality of branch instructions. Microprocessor executes a branch instruction and thereafter, in accordance with the result of execution, reads from the memory an instruction to be executed next from the branch destination. This interrupts pipeline processing, resulting in much time for processing. Therefore, an operation has been known in which at a time point when the microprocessor reads a branch instruction, a branch destination is predicted, and instruction at the predicted branch destination is read to a branch instruction buffer, which operation is referred to as dynamic branch prediction. The essence of the dynamic branch prediction is the prefetch technique. In the branch prediction technique for the microprocessor, various methods have been proposed, and in some of which, types of instructions or history of the branch instruction are learned. Efficiency of prefetching depends on the differences in specific methods of prediction.
It is of great importance also in the technique of prefetching of hypertext file objects to improve the efficiency of prefetching.
In order for a user to take and carry about the file objects stored in client computer 102, which is a desktop computer, it is necessary to provide a replica of a desired file object to a portable computer (hereinafter referred to as xe2x80x9cmobile computerxe2x80x9d).
As to the method of providing a replica of the file object, an off line reader software which will be described later, may be run on the mobile computer, so that the object file on the server computer is stored in the mobile computer. Alternatively, the file object stored in the desktop computer may be copied to the mobile computer. However, this method requires explicit operation of the user, and therefore it is not very convenient.
A browser on the desktop computer may use an arbitrary storage as a cache for storing a file object. Therefore, when a storage device having a portable storage medium is used as a cache, the file object may be moved. Such a storing medium and the storing device are represented by a floppy disk and a floppy disk drive, respectively. Read/write from and to the floppy disk drive is at a low speed, and the floppy disk has a storage as small as about 1 MB (Mega Byte). Therefore, by the floppy disk, it is impossible for a user to carry about only about 20 file objects each having the average data amount of 50 KB (Kilo Byte). Therefore, it is difficult to carry about a file object of large capacity.
The disadvantage in the speed of operation may be addressed by using a Flash Disk card of PCMCIA type utilizing a flash memory, as a cache. The flash memory, however, is expensive, and involves exchange (replacing) to the mobile computer when the user moves. Therefore, carrying of the cache causes troublesome work.
Further, a common desktop computer does not have any PCMCIA slot. In order to utilize a Flash Disk card, it is necessary to additionally provide an extension PCMCIA unit to the computer.
It is possible to have two hard disks of which contents are always identical, by utilizing mirroring technique of the hard disk and to carry about only one of these hard disks. However, the hard disk of the desktop computer is not so designed as to allow the user to remove and carry. Therefore, it is not convenient.
Assuming that the cache is movable, a separate cache is further required in order to use the browser operating on the desktop computer to which the cache originally belongs. Accordingly, it is necessary for the user to change the setting of the browser to use another cache. When another cache does not actually exist, the browser itself is not activated. Therefore, it is difficult to modify the setting.
For a user to use a cache on a separate desktop computer connected to a network at the place where the user moves to, it is necessary to change the setting of the browser as described above, and in addition, the setting of the browser must be changed again to the original state after operation at that site is complete. If the user forgets to restore the setting of the browser, the browser of the desktop computer at the site cannot be activated. Further, when the cache is to be returned to the original desktop computer, the user must remember the original setting of the browser.
The type of file objects stored in the cache differ from browser to browser. Therefore, the user cannot help but use the same browser at the computer at his destination.
As described above, the method of storing a file object in a movable cache on a desktop computer which is not portable, carrying about the cache and referring to the file object stored in the cache on a network at one""s destination means that some necessary components of the browser are moved, and therefore such method has various problems in actual use. Further, the method strongly depends on the browser, and therefore the method is not generally applicable.
Software for automatically down loading a file object on a server computer from a URL to a prescribed layer is referred to as off line reader software (or Auto Pilot software). Among such software, some supports Proxy type. The off line reader software automatically gets a file object and stores it in the cache, when the URL and the depth of the layer are designated.
Operation of such an off line reader software is not very convenient on a mobile computer which is small and has poor display function. Further, it is possible for the off line reader software to transfer the file object of an URL only to a prescribed layer. Therefore, in order to transfer and carry about a file object at a deeper layer, it is necessary to set the URL or the number of layers again in the off line reader software. Therefore, the user who is working using the browser on a desktop computer must stop his or her work. Further, the off line reader software is designed not on the premise that the software is used moving over a plurality of networks. Therefore, it is necessary for the user to designate an upstream gateway computer at every site where the user moves to, which operation is troublesome.
Further, the off line reader software is also used as the Proxy from other computers, and therefore the user of the software cannot be limited to an individual.
Dependent on the network, it is necessary for a downstream gateway computer to designate an upstream gateway computer by Automatic Proxy Configuration Script. Automatic Proxy Configuration Script is a set up file in accordance with an automatic set up script described in Java script language, which indicates, on the basis of a rule, a method of selecting an upstream gateway computer.
If an address of the WWW server storing Automatic Proxy Configuration Script is xe2x80x9chttp://www.foobar.co.jp/setup.pacxe2x80x9d, then Proxy server selection rule is written therein. An example of Automatic Proxy Configuration Script at this time is as shown in Table 1. Every time the WWW browser accesses a file object, Find ProxyForURL( ) selecting function is executed, a Proxy server to be used for a return value is described by a character string, and the browser is controlled.
The URL name of the file object is passed to a variable xe2x80x9curlxe2x80x9d and the name of the WWW server is passed to a variable xe2x80x9chostxe2x80x9d, respectively. A 10 character string pattern comparing function referred to as shExpMatch( ) function is used. Here, it is designated that URLs such as xe2x80x9chttp://www.asahi.com/xe2x80x9d, that is, those having xe2x80x9c.comxe2x80x9d at the last part of the host name are designated by port number 8080 of gateway computer Poxy.foobar.co.jp, and others are processed by port number 8080 of gateway computer Proxy1.foobar.co.jp.
More specifically, there are two methods of Proxy server designation, that is, one in which an address and a port number of one Proxy server are designated and one in which an URL address of Automatic Proxy Configurations script is designated. No matter which method is used for designating an address, the Proxy must correctly recognize the upstream gateway computer.
As described above, when the Proxy is operated on a mobile computer as described above, set up allowing use of the Proxy on the mobile computer from a browser on the desktop computer is not possible unless the address and the port number can be readily known from the desktop computer. Therefore, it is necessary that the IP address and the port number of the mobile computer must be indicated on the display of the mobile computer.
As described above, when the Proxy used by the browser of the desktop computer is a mobile Proxy server, it is not possible for the browser to access the network unless there is a mobile computer on which the mobile Proxy server operates. For this reason, when the mobile computer is moved, it is necessary for the user to change the Proxy setting of the browser. Once the Proxy setting is changed, it is necessary for the user to recover the setting when it becomes possible to use the mobile computer again. Such troublesome operation should be avoided.
In a network where information of an upstream Proxy is applied by Automatic Proxy Configuration, it is indispensable for the mobile Proxy server to contain a Java script interpreter to decode Automatic Proxy Configuration script. Implementation of a Java script interpreter, however, generally increases burden on a mobile computer of which speed of processing is generally lower than that of the desk top computer. In some cases, implementation of the interpreter is not desired.
Further, the information of the file object read by the browser, that is, history information identifying what was the URL of the object, is stored and displayed only by the browser of the desktop computer. Therefore, it is not possible to refer to the history information at one""s destination. Therefore, it is difficult for a user to refer to the URLs accessed by the desktop computer at a place where the user moves to.
Further, there are file objects which can be referred to only by corresponding networks. One example of such file objects is an information page provided on an internal network (intranet) of a company. Assume that a user works while moving on the intranet. Even if it is possible to display history information, it may not be possible for the user to get a file object if the file object included in the history information is provided only on the intranet. More specifically, it is necessary that the mobile computer is physically connected to the corresponding intranet. Therefore, it is necessary to explicitly indicate which network the URL included in the history information belongs to.
The Proxy server does not store in the cache a page which is dynamically created, such as CGI. Generally, a gateway computer is shared by a plurality of users. A page dynamically created for an individual must not be browsed by others, to protect privacy of the individual.
In a company, for example, telephone book data, book and chit data, address book data, figure data, map data and table data are stored in a WWW server computer connected to the intranet. The information is provided as pages browsable by a browser, whereas the information are dynamic pages created with different attributes added user by user. Therefore, the Proxy does not store the dynamic pages in the cache. Therefore, it is not possible for the user to carry about this useful information.
In a gateway computer of a conventional distributed file system, a file object is relayed for the first time after the user issues an access request to the file object in the server computer. Therefore, it takes time for an access to a file object of a server computer which has never been accessed by the user before.
The following is a solution to this problem. At a time band different from the time when the user actually accesses to a file object of the server computer, a client computer analyzes hypertext information included in the file objects of the server computer. The client computer automatically accesses to a separate file object at a hyperlinked destination in accordance with the result of analysis, and stores the object in a storage of the client computer in advance. Therefore, when the user actually accesses to the file object of the server computer, the user utilizes a replica of the file object stored in the storage of the client computer, and thus the speed of access is improved.
In this method, however, it is necessary to predict a file object of the server computer to which access in the future is expected. Further, the method does not function well in accessing to a file object of a server computer which cannot be predicted by the user (for example, latest information from a news flash). More specifically, a replica of the file object in the server computer is stored in the storage at a time band different from the time of actual access by the user. If the file object is updated in the meantime, the user may undesirably refer to a replica of the old file object.
The above described prefetch is a solution to this problem. According to the method, however, an access to a separate file object takes place parallel to an actual access to a file object of the server computer by the user. Therefore, a high load is applied to the gateway computer relaying the file object and to the client computer (when the client computer is prefetching). Further, file objects which may not be actually accessed by the user are also relayed, which increases network traffic.
When a client computer on a certain network is to be used as a client computer on a different network at a different site where the user moves to, the replica of the file object of the server computer stored in the gateway computer storage of the certain network cannot be used by the different network.
When a mobile computer having a prefetch access function on a certain network is to be used as it is on a different network at a site where the user moves to, communication speed of the circuit differ network by network. This results in different access speed, hindering satisfactory prefetch access.
Among the client computers and gateway computers existing between the client computers and the server computer, when there are a plurality of computers having the function of issuing prefetch access request, these computers may request prefetch access independent from each other, resulting in double prefetch access to one same file object, storage of replicas of one file object in several computers and so on, which are wasteful.
Further, when use of a replica of a file object stored in the storage is inhibited or when only the latest replica of the file object stored in the storage is to be used, in accordance with designation of user access request, such conditions are not reflected on the prefetch access request. Therefore, a latest file object of the server computer may not be obtained by the prefetch access request.
The present invention was made in view of the foregoing and its object is to provide a method of relaying a file object used in a gateway computer which allows change of various parameters settings dependent on the network in a simple manner, and allows reference of a file object, which was referenced when a client computer was connected to a certain network, even when the client computer is connected to another network, in a simple manner.
An additional object of the present invention is to provide a method of relaying a file object allowing simple network set up of a client computer.
A still further object of the present invention is to provide a method of relaying a file object securing confidentiality of a file object stored in the gateway computer.
A still further object of the present invention is to provide a method of relaying a file object allowing a gateway computer to refer to an address of a file object relayed when a client computer was connected to a certain network, even when the client computer is connected to a different network.
A still further object of the present invention is to provide a method of relaying a file object allowing reference of a file object read in advance based on a hyperlink included in a file object relayed by the gateway computer, even when a client computer is connected to another network.
A still further object of the present invention is to provide a method of relaying a file object allowing prefetching, even when the gateway computer does not relay the file object.
A still further object of the present invention is to provide a distributed file system in which it is unnecessary for the gateway computer to perform a process of switching an upstream computer, in a file object relaying process.
A still further object of the present invention is to provide a distributed file system in which it is unnecessary for the gateway computer to perform switching of an upstream computer, and in which it is unnecessary to implement an interpreter for interpreting a script in the gateway computer.
A still further object of the present invention is to provide a distributed file system allowing efficient file object relay.
A still further object of the present invention is to provide a computer readable recording medium storing a program of a method of relaying a file object used in a gate way computer, which allows change in various parameters settings dependent on the network in a simple manner and which allows reference of a file object referred to when a client computer was connected to a certain network, even when the client computer is connected to another network, in a simple manner.
A still further object of the present invention is to provide a computer readable recording medium storing a program of a method of relaying a file object which secures confidentiality of a file object stored in a gateway computer.
A still further object of the present invention is to provide a computer readable recording medium storing a program of a method of relaying a file object which allows reference of a file object which has been read ahead in accordance with a hyperlink included in a file object relayed by a gateway computer, in a simple manner even when a client computer is connected to a different network.
A still further object of the present invention is to provide a computer readable recording medium storing a program of a method of relaying a file object allowing prefetching, even when a gateway computer does not relay a file object.
A still further object of the present invention is to provide a gateway computer which allows change of various parameters settings dependent on the network and allows reference to a file object which was referred to when a client computer was connected to a certain network, in a simple manner even when the client computer is connected to another network.
A still further object of the present invention is to provide a gateway computer allowing reference to a file object which has been read ahead in accordance with a hyperlink included in a file object relayed by the gateway computer in a simple manner even when a client computer is connected to another network.
A still further object of the present invention is to provide a gateway computer allowing prefetching even when relay of a file object is not performed.
In accordance with an aspect of the present invention, the method of relaying a file object is used in a gateway computer for relaying a file object in accordance with any of a plurality of control structures which correspond to a plurality of networks, respectively. The gateway computer includes a storage for storing file objects. Each of the plurality of control structures has an address of a representative gateway computer to which a client computer is connected. The method of relaying a file object includes the steps of: receiving an event; when the event is a request for switching between the control structures, switching various parameters in accordance with that control structures to which switching is requested; when the event is a request for a file object transmitted from a client computer, reading the file object from either one of an upstream computer and the storage and relaying the read object to the client computer, and storing the relayed file object to the storage.
The gateway computer has a control structure for each network, and based on the control structure to which switching is requested, the gateway computer switches various parameters. Therefore, even when the gateway computer consists of a movable computer, it is possible for a user to change settings of various parameters in a simple manner. Further, file objects stored in the storage of itself can be referenced in a simple manner at a site where the user moves to.
Preferably, the method of relaying a file object further includes the step of displaying network address information of the gateway computer.
The gateway computer displays the network address information. Therefore, it is possible for the user, seeing the network address information, to know the network information of the gateway computer to which the client computer is connected, in a simple manner. Therefore, it is possible for the user to perform network set up of the client computer in a simple manner.
More preferably, each of the plurality of control structures further has a permission address pattern. The above described step of relaying includes the steps of determining, when the event is a request for getting a file object, whether the address of the client computer transmitting the request matches the permission address pattern, and when it matches the permission address pattern, reading the file object from the upstream computer or the storage and relaying the read object to the client computer.
The gateway computer relays a file object only in accordance with a request for the file object from a client computer which matches the permission address pattern determined for each of the networks to be connected. Therefore, even when different networks have one address system, it is possible to designate a client computer which is capable of requesting a file object for every network, and therefore confidentiality of the file object stored in the gate computer is secured.
More preferably, each of the plurality of control structures further has a permission user name and a password. The above described step of relaying includes the steps of asking a user using that client computer which has transmitted a request for getting a file object to input a user name and a password, receiving the user name and the password transmitted from the client computer, comparing the user name and the password received from the client computer with the user name and the password stored in the control structure, and when these match, reading the file object from either an upstream computer or the storage and relaying the read object to the client computer.
The gateway computer relays a file object only in accordance with a request for getting a file object from a specific user. Therefore, confidentiality of the file object stored in the gateway computer is secured.
More preferably, the method of relaying a file object further includes the step of history display for displaying, when the event is a request for displaying history, an address of the file object relayed in the above described step of relaying.
The gateway computer displays the address of the relayed file object in accordance with a history display request. Therefore, an address of the file object which was relayed when the gateway computer was connected to a certain network can be referred to when a client computer is connected to another network.
More preferably, the above described step of relaying further includes a user access request relay step for reading, when the event is a request for a file object, the file object from an upstream computer or the storage and relaying the read object to the client computer, and a prefetch step for further reading, based on a hyperlink included in the relayed file object, the file object from an upstream computer or the storage and storing the further read object in the storage.
It is possible to read a file object ahead based on a hyperlink included in the file object relayed by the gateway computer. Therefore, it is possible to refer to the file object read in advance even when a client computer is connected to a different network, in a simple manner.
More preferably, the method of relaying a file object includes the steps of reading, when the event is a response designating use of a file object stored in the client computer, a file object which is the same as the file object stored in the client computer designated by the response, and based on the hyperlink included in the read file object, further reading a file object from an upstream computer or the storage, and storing the further read object in the storage.
The gateway computer prefetches and stores a file object in the storage even when there is not a request for a file object from the client computer. Therefore, even when the file object is already stored in the client computer and the gateway computer does not relay any file object, prefetching is possible.
According to another aspect of the present invention, the distributed file system includes a plurality of upstream computers, a gateway computer and a client computer. The gateway computer includes a plurality of Proxy server threads corresponding to the plurality of upstream computers respectively, each receiving a request for getting a file object from the client computer, reading a file object from respective ones of the plurality of upstream computers and relaying the read object to the client computer. The client computer includes a first unit for transmitting a request for getting a file object to any of the plurality of Proxy server threads in accordance with the type of the file object to be requested, and for receiving the file object from any of the plurality of Proxy server threads.
The client computer selects any of the plurality of Proxy server threads in accordance with the type of the file object and transmits a request for getting the file object. Each of the plurality of Proxy server threads receives the request for getting the file object, gets the file object from an upstream computer and relays the object to the client computer. Therefore, it is unnecessary for the gateway computer to perform switching of the upstream computers.
Preferably, the gateway computer further includes a unit for generating a script to establish correspondence between a file object and any of the plurality of upstream computers in accordance with the type of the file object and transmitting the script to the client computer. The above described first unit includes a unit for transmitting a request for getting the file object to any of the plurality of Proxy server threads determined from the script in accordance with the type of the file object to be requested, and for receiving the file object to any of the plurality of Proxy server threads.
The client computer selects any of the plurality of Proxy server threads determined from the script in accordance with the type of the file object, and transmits a request for getting the file object. Each of the plurality of Proxy server threads receives a request for getting the file object, gets the file object from an upstream computer and relays the object to the client computer. Therefore, it is unnecessary for the gateway computer to perform switching between the upstream computers, and therefore it is unnecessary to implement an interpreter for interpreting the script in the gateway computer.
In accordance with a still further aspect of the present invention, the distributed file system includes a client computer, a first gateway computer connected to the client computer, a second gateway computer connected to the first gateway computer, and an upstream computer connected to the second gateway computer. The first gateway computer includes a first instruction adding unit receiving a request for getting a file object from the client computer, adding an instruction for executing a prefetch access request and transmitting the resulting request to the second gateway computer. The second gateway computer includes a second instruction analyzing unit receiving the request for a file object with the instruction for executing a prefetch access request added by the first instruction adding unit, for interpreting an instruction for executing the prefetch access request, a second storage storing the file object, and a second prefetch processing unit connected to the second instruction analyzing unit, reading the file object from either the upstream computer or the second storage based on a hyperlink included in the prefetch access request, and storing the read object in the second storage.
As the prefetch request is transmitted from serially connected first gateway computer to the second gateway computer, double prefetching of one same file object can be avoided. This enables efficient relay of the file object.
The computer readable recording medium in accordance with a still further aspect of the present invention records a program of a method of relaying a file object used in a gateway computer relaying a file object, in accordance with any of a plurality of control structures which correspond to a plurality of networks, respectively. The gateway computer has a storage for storing file objects. Each of the plurality of control structures has an address of a representative gateway computer to which a client computer is connected. The method of relaying a file object includes the steps of receiving an event, when the event is a request for switching between control structures, switching various parameters in accordance with that control structure to which switching is requested, and when the event is a request for getting a file object transmitted from the client computer, reading the file object from either an upstream computer or the storage and relaying the read object to the client computer, and storing the relayed file object in the storage.
The gateway computer has control structures for respective networks, and switches various parameters based on that one of the control structures to which switching is requested. Therefore, even when the gateway computer is provided as a movable computer, it is possible for the user to easily change settings of various parameters. Further, it is possible for the user to refer to the file object stored in the storage of itself even at a site where the user moves to in a simple manner.
More preferably, each of the plurality of control structures further has a permission address pattern. The above described step of relaying includes the steps of, when the event is a request for getting a file object, determining whether an address of the client computer transmitting the request matches the permission address pattern, and when the address matches the permission address pattern, reading the file object from either an upstream computer or the storage and relaying the read object to the client computer.
The gateway computer relays a file object only in accordance with a request for getting the file object from that client computer which matches the permission address pattern determined for every network to be connected. Therefore, even when different networks have the same address system, it is possible to designate a client computer which is allowed to request a file object for each network, and therefore confidentiality of the file object stored in the gateway computer is secured.
More preferably, each of the control structures further has a permission user name and a password. The above described step of relaying includes the steps of asking the user using the client computer transmitting a request for getting the file object to input a user name and a password, receiving the user name and the password transmitted from the client computer, comparing the user name and the password received from the client computer with the user name and the password stored in the control structure, and when these match, reading the file object from either an upstream computer or the storage and relaying the read object to the client computer.
The gateway computer relays a file object only in accordance with a request for the file object from a specific user. Therefore, confidentiality of the file object stored in the gateway computer is secured.
More preferably, the above described step of relaying includes a user access request relaying step for reading, when the event is a request for a file object, the file object from either an upstream computer or the storage and relaying the read object to the client computer, and a prefetch step for further reading, based on a hyperlink included in the relayed file object, a file object from either the upstream computer or the storage, and storing the further read object in the storage.
It is possible to read a file object in advance based on the hyperlink included in the file object relayed by the gateway computer. Therefore, the file object read in advance can be referred to in a simple manner even when the client computer is connected to a different network.
More preferably, the above described method of relaying a file object further includes the steps of reading, when the event is a response designating use of a file object stored in the client computer, a file object which is the same as the file object stored in the client computer designated by the response, and further reading a file object from either the upstream computer or the storage based on a hyperlink included in the read file object and storing the further read object in the storage.
The gateway computer prefetches even when there is no request for a file object from the client computer, and stores the file object in the storage. Therefore, even when the file object is already stored in the client computer and the gateway computer does not relay any file object, prefetching is possible.
The gateway computer in accordance with a still further aspect of the present invention includes a storage for storing a file object and a plurality of control structures corresponding to a plurality of networks, respectively, a unit for receiving an event from a client computer, a unit for switching various parameters in accordance with that one of the control structures to which switching is requested when the event is a request for switching between the control structures, a relay unit for reading, when the event is a request for getting a file object, the file object from either an upstream computer or the gateway computer and relaying the read object to the client computer, and a storing unit for storing the relayed file object in the storage. Each of the plurality of control structures has an address of a representative gateway computer to which the client computer is connected.
The gateway computer has a control structure for each network, and switches various parameters based on the control structure to which switching is requested. Therefore, even when the gateway computer is provided as a movable computer, it is possible for the user to change settings of various parameters in a simple manner. Further, it is possible for the user to refer to the file objects stored in the storage of its own at a site where the user moves to.
More preferably, the relay unit includes a user access request relaying unit for reading, when the event is a request for getting a file object, the file object from either the upstream computer or the gateway computer and relaying the read object to the client computer, and a prefetch unit for further reading a file object from either the upstream computer or the gateway computer based on a hyperlink included in the relayed file object and storing the further read object in the storage.
It is possible to read a file object in advance based on the hyperlink included in the file object relayed by the gateway computer. Therefore, the file object read in advance can be readily referenced even when the client computer is connected to a different network.
Preferably, the relay unit includes a unit for reading, when the event is a response designating use of a file object stored in the client computer, the file object which is the same as the file object stored in the client computer designated by the response from the storage, and a unit for further reading, based on a hyperlink included in the read file object, a file object from either the upstream computer or the storage and storing the further read object in the storage.
The gateway computer prefetches even when there is no request for getting a file object from the client computer, and stores the file object in the storage. Therefore, even when the file object is already stored in the client computer and the gateway computer does not relay any file object, prefetching is possible.